import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ret = new ArrayList<>();
        List<Integer> list = new ArrayList<>();
        list.add(1);
        ret.add(list);
        for (int i = 0; i < numRows; i++) {
            List<Integer> row = new ArrayList<>();
            row.add(1);
            List<Integer> a = ret.get(i - 1);
            for (int j = 0; j < i; j++) {
                int val1 = a.get(j);
                int val2 = a.get(j - 1);
                a.add(val1 + val2);
            }
            row.add(1);
            ret.add(row);
        }
        return ret;
    }
}

class Solution1 {
    public int evalRPN(String[] tokens) {
        Stack<Integer> st = new Stack();
        for (int i = 0; i < tokens.length; i++) {
            String str = tokens[i];
            if (o(str) == false) {
                int val = Integer.parseInt(str);
                st.push(val);
            } else {
                int val1 = st.pop();
                int val2 = st.pop();
                switch (str) {
                    case "+":
                        st.push(val2+val1);
                        break;
                    case "-":
                        st.push(val2-val1);
                        break;
                        case "*":
                        st.push(val2*val1);
                        break;
                        case "/":
                        st.push(val2/val1);
                        break;
                }

            }
        }
        return st.peek();
    }



        private boolean o (String s){
            if (s.equals("+") || s.equals("-") || s.equals("*") || s.equals("/")) {

                return true;
            }
            return false;
        }
    }

}